Printing apparatus and control method thereof, and printing system

ABSTRACT

This invention has as its object to allow an authentication process that avoids unnecessary information from being stored in a digital camera irrespective of whether or not a digital camera connected to the printer has a direct print function. To this end, in this invention, in an early stage of connection between a digital camera DSC and PD printer, the PD printer side requests an object which contains a keyword as authentication information of those which are stored and held by the DSC (S 29 ). As a result, after it is determined the returned information contains authentication information, the printer notifies the DSC of its own authentication information (S 33 ).

This application is a continuation of U.S. application Ser. No.10/984,783, filed Nov. 10, 2004 which is a continuation of InternationalApplication No. PCT/JP03/07011, filed Jun. 3, 2003, each of which arehereby incorporated by reference in their entirety.

TECHNICAL FIELD

The present invention relates to a printer apparatus and system, whichcan directly communicate with a digital camera. Note that some recentdigital cameras have a function of sensing a moving image. However,since the basic function of a digital camera is at least a still imagephotographing function, apparatuses having the above function will alsobe called a digital camera (DSC).

BACKGROUND ART

Normally, upon printing an image sensed by a digital camera, thefollowing processes are required. That is, an image stored in thedigital camera is read by a personal computer (to be referred to as a PChereinafter), and is printed by a connected printer using an applicationrunning on the PC.

That is, the flow of image data is DSC→PC→printer, and possession of thePC is indispensable. Also, the PC must be started to print an imagestored in a DSC.

In consideration of such situation, some proposals in which a DSC and aprinter are directly connected, and a print instruction is issued on adisplay normally equipped on the DSC (to be referred to as photo directprint hereinafter) have already been made.

Merits of use of the photo direct print system are easy print withoutstarting a PC and low system building cost since a PC is notindispensable. Upon connecting a DSC to a printer, a display normallyequipped on the DSC is used as means for giving various instructionsand, especially, for confirming an image to be printed. Hence, a printerdoes not require any special display used to confirm an image, and thecost can be further reduced.

Most of recent DSCs comprise versatile communication means used toconnect a PC. Typically, a DSC comprises a USB (Universal Serial Bus).Upon connection using this USB, a communication is established whiledefining the DSC as a slave and the PC as a host. When viewed from thePC side, the DSC can be handled like a simple external storage device.

Upon building a direct print system by directly connecting a DSC to aprinter using such USB, it is desired to use the DSC not only as asimple storage device but also as a user interface device as the systemunlike the DSC for the PC.

Therefore, a printer must determine whether or not a connected device isa digital camera having such function. In other words, a printer mustnotify a digital camera that the connected printer has a direct printfunction.

However, since recent digital cameras have a USB interface, a digitalcamera can be physically connected to a printer. However, if a digitalcamera does not have the direct print function, uninterpretableinformation is sent to the digital camera, which cannot determinewhether that information can be ignored or must be saved. If suchinformation is saved for security, unnecessary data may remain stored.

When a DSC is directly connected to a printer, they exchange variouskinds of information. In general, such two-way information exchange isachieved using commands. However, a plurality of pieces of informationare often required to execute a given process.

Therefore, upon notifying one significant process or information, manycommands must be exchanged, and the throughput as a whole inevitablydeteriorates.

Especially, in an early stage of connection between the DSC and printer,the printer must notify the DSC of printer functions (manufacturer name,recordable paper sizes, layouts, availability of borderless print, andthe like). In order to notify each of these functions using commands,commands corresponding to all kinds of functions must be defined inadvance, and the number of times of exchange becomes huge. Even ifcommands are defined, they cannot cope with those for new functions,which may be added in the future.

Upon building a photo direct print system which directly connects adigital camera and printer, and prints images while reflecting theuser's will, the present inventors tackled these problems as objects,and solved these problems.

DISCLOSURE OF INVENTION

The present invention has been made in consideration of the aboveproblems, and has as its first object to provide a print apparatus,which can execute an authentication procedure that avoids unnecessaryinformation from being stored in a digital camera irrespective ofwhether or not a digital camera connected to the printer has a directprint function, a control method thereof, and a print system.

It is the second object of the present invention to provide a printapparatus, which can improve information transfer efficiency uponbuilding a photo direct print system and prints an image that the userwants to print in a short response time, a control method thereof, and aprint system.

In order to achieve the above objects, for example, a print apparatusaccording to the present invention comprises the following arrangement.

That is, a printer apparatus which directly connects a digital cameravia versatile communication means, uses the digital camera as a userinterface device, and prints a sensed image stored and held by thedigital camera, comprises:

request means for requesting a connected external device to sendinformation possessed by the external device so as to authenticate ifthe external device is a digital camera having a direct print function,in an early stage of connection with the external device via thecommunication means; and

notification means for, when information sent from the connected devicedescribes authentication information possessed by a camera having adirect print function as a result of the request by the request means,determining that the device is the digital camera having the directprint function, and sending authentication information indicating thatthe printer apparatus itself as a connection source has the direct printfunction.

Other features and advantages of the present invention will be apparentfrom the following description taken in conjunction with theaccompanying drawings, in which like reference characters designate thesame or similar parts throughout the figures thereof.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a schematic perspective view of a PD printer apparatusaccording to an embodiment of the present invention;

FIG. 2 is a schematic view of a control panel of the PD printerapparatus according to the embodiment of the present invention;

FIG. 3 is a block diagram showing the arrangement of principal partassociated with control of the PD printer apparatus according to theembodiment of the present invention;

FIG. 4 is a block diagram showing the arrangement of an ASIC of the PDprinter apparatus according to the embodiment of the present invention;

FIG. 5 is a view showing the connection state of the PD printerapparatus according to the embodiment of the present invention, and adigital camera;

FIG. 6 is a view for explaining the software configurations of a PDprinter apparatus and digital camera, which incorporate NCDP accordingto the embodiment of the present invention;

FIG. 7 is a view for explaining an outline of NCDP communicationprocedures according to the embodiment of the present invention;

FIG. 8 is a view for explaining commands in NCDP according to theembodiment of the present invention;

FIG. 9 is a chart for explaining a print sequence based on “basicprocedure” in NCDP according to the embodiment of the present invention;

FIG. 10 is a chart for explaining a print sequence based on “recommendedprocedure” in NCDP according to the embodiment of the present invention;

FIG. 11 is a chart for explaining a print sequence upon occurrence of anerror in “recommended procedure” in NCDP according to the embodiment ofthe present invention;

FIG. 12 is a view for explaining an example of Capability transmitted inNCDP according to the embodiment of the present invention;

FIG. 13 is a flow chart for explaining an outline of the NCDPcommunication procedures according to the embodiment of the presentinvention;

FIG. 14 is a view for explaining an example wherein a command(NCDPStart) that instructs to start the NCDP procedure is implementedusing a PTP architecture;

FIG. 15 is a view for explaining an example wherein a procedure(ProcedureStart) that receives a transition command from the camera torespective procedures is implemented using the PTP architecture;

FIG. 16 is a view for explaining an example wherein a command (NCDPEnd)that instructs to end the NCDP procedure is implemented using the PTParchitecture;

FIG. 17 is a view for explaining an example wherein a command(Capability) that transmits Capability from the PD printer apparatus tothe camera in the NCDP procedure is implemented using the PTParchitecture;

FIG. 18 is a view for explaining an example wherein a procedure of acommand (GetImage) that acquires an image file held in the camera fromthe PD printer apparatus in the NCDP procedure is implemented using thePTP architecture;

FIG. 19 is a view for explaining an example wherein a procedure of acommand (StatusSend) that transmits error status from the PD printerapparatus to the camera in the NCDP procedure is implemented using thePTP architecture;

FIG. 20 is a view for explaining an example wherein a procedure of acommand (PageEnd) that transmits end of a print process for one pagefrom the PD printer apparatus to the camera in the NCDP procedure isimplemented using the PTP architecture;

FIG. 21 is a view for explaining an example wherein a procedure (JobEnd)that issues an end command of a print job from the PD printer apparatusto the camera in the NCDP procedure is implemented using the PTParchitecture;

FIG. 22 is a view for explaining an example wherein a procedure(JobStart) that issues a print command from the camera to the PD printerapparatus in the NCDP procedure is implemented using the PTParchitecture;

FIG. 23 is a view for explaining an example wherein a procedure(JobAbort) that issues a print abort command from the camera to the PDprinter apparatus in the NCDP procedure is implemented using the PTParchitecture;

FIG. 24 is a view for explaining an example wherein a procedure(JobContinue) that issues a print restart command from the camera to thePD printer apparatus in the NCDP procedure is implemented using the PTParchitecture;

FIG. 25 is a flow chart showing the negotiation procedure in theembodiment;

FIG. 26 is a block diagram of a digital camera DSC in the embodiment;and

FIG. 27 is a flow chart showing the processing sequence on the DSC sideupon receiving an inquiry (GetObjectHandles) of objects possessed by thedigital camera DSC in the embodiment.

BEST MODE FOR CARRYING OUT THE INVENTION

An embodiment according to the present invention will be describedhereinafter with reference to the accompanying drawings.

FIG. 1 is a schematic perspective view of a photo direct printerapparatus (to be referred to as a PD printer apparatus hereinafter) 1000according to an embodiment of the present invention. This PD printerapparatus 1000 has a function of printing data received from a hostcomputer (PC) as a normal PC printer, and a function of printing imagedata directly read from a storage medium such as a memory card or thelike or printing image data received from a digital camera.

Referring to FIG. 1, a main body which forms a housing of the PD printerapparatus 1000 according to this embodiment has a lower case 1001, uppercase 1002, access cover 1003, and exhaust tray 1004 as an exteriormember. The lower case 1001 nearly forms the lower half portion of themain body, and the upper case 1002 nearly forms the upper half portionof the main body. By combining these cases, a hollow structure which hasa storage space that stores a mechanism to be described later is formed.Openings are respectively formed on the upper and front surfaces of themain body. One end portion of the exhaust tray 1004 is rotatably held bythe lower case 1001, and rotation of the tray 1004 opens/closes theopening formed on the front surface of the lower case 1001. For thisreason, upon making the printer apparatus 1000 execute a print process,the exhaust tray 1004 is rotated toward the front surface side to openthe opening, so that print sheets can be exhausted from the opening. Theexhausted print sheets are stacked on the exhaust trays 1004 in turn.The exhaust tray 1004 stores two auxiliary trays 1004 a and 1004 b, andwhen these auxiliary trays are pulled out as needed, the loading area ofprint sheets can be enlarged/reduced in three steps.

One end portion of the access cover 1003 is rotatably held by the uppercase 1002 to be able to open/close the opening formed on the uppersurface of the main body. When the access cover 1003 is opened, aprinthead cartridge (not shown), ink tanks (not shown), or the likehoused in the main body can be exchanged. Although not shown, when theaccess cover 1003 is opened/closed, a projection formed on the rearsurface of the cover 1003 rotates a cover open/close lever. By detectingthe rotation position of that lever using a microswitch or the like, theopen/close state of the access cover 1003 is detected.

A power key 1005 is arranged on the upper surface of the upper case 1003so as to be able to be pressed. A control panel 1010 which comprises aliquid crystal display 1006, various key switches, and the like isprovided on the right side of the upper case 1002. The structure of thecontrol panel 1010 will be described in detail later with reference toFIG. 2. Reference numeral 1007 denotes an automatic feeder whichautomatically conveys a print sheet into the apparatus main body.Reference numeral 1008 denotes a paper gap select lever which is used toadjust the gap between the printhead and print sheet. Reference numeral1009 denotes a card slot which receives an adapter that can receive amemory card. Via this adapter, image data stored in the memory card canbe directly fetched and printed. As this memory card (PC), for example,a compact flash card, smart media card, memory stick, and the like areavailable. Reference numeral 1011 denotes a viewer (liquid crystaldisplay unit) which is detachable from the main body of this PD printerapparatus 1000, and is used to display an image for one frame, indeximage, and the like. Reference numeral 1012 denotes a USB terminal usedto connect a digital camera (to be described later). Also, another USBconnector used to connect a personal computer (PC) is provided on therear surface of this PD printer apparatus 1000.

FIG. 2 is a schematic view of the control panel 1010 of the PD printerapparatus 1000 according to this embodiment.

Referring to FIG. 2, a liquid crystal display unit 1006 displays menuitems used to set data associated with item names printed on the rightand left sides of the unit 1006. The items displayed on this unitinclude, e.g., the first photo number or designated frame number of therange to be printed (start frame designation/print frame designation),the last photo number of the range to be printed (end), the number ofcopies to be printed (copy count), the type of paper sheet (print sheet)used in a print process (paper type), the setup of the number of photosto be printed per print sheet (layout), designation of print quality(quality), designation as to whether or not to print a photographingdate (date print), designation as to whether or not to print a photoafter correction (image correction), display of the number of printsheets required for the print process (print sheet count), and the like.These items are selected or designated using cursor keys 2001. Referencenumeral 2002 denotes a mode key. Every time this key is pressed, thetype of print (index print, all-frame print, one-frame print, and thelike) can be switched, and a corresponding one of LEDs 2003 is turned onin accordance with the selected type of print. Reference numeral 2004denotes a maintenance key which is used to do maintenance of the printer(e.g., cleaning of the printhead, and the like). Reference numeral 2005denotes a print start key which is pressed when the start of a printprocess is instructed or when the maintenance setup is settled.Reference numeral 2006 denotes a print cancel key which is pressed whena print process or maintenance is canceled.

The arrangement of principal part associated with the control of the PDprinter apparatus 1000 of this embodiment will be described below withreference to FIG. 3. Note that the same reference numerals in FIG. 3denote parts common to those in the above drawings, and a descriptionthereof will be omitted.

Referring to FIG. 3, reference numeral 3000 denotes a controller(control board). Reference numeral 3001 denotes an ASIC (dedicatedcustom LSI). The arrangement of the ASIC 3001 will be described laterwith reference to the block diagram of FIG. 4. Reference numeral 3002denotes a DSP (digital signal processor), which includes a CPU andexecutes various kinds of control to be described later, and imageprocesses such as conversion from a luminance signal (RGB) into adensity signal (CMYK), scaling, gamma conversion, error diffusion, andthe like. Reference numeral 3003 denotes a memory, which has a memoryarea that serves as a program memory 3003 a for storing a controlprogram to be executed by the CPU of the DSP 3002, a RAM area forstoring a running program, and a work area for storing image data andthe like. Reference numeral 3004 denotes a printer engine. In thisembodiment, the printer is equipped with a printer engine of an ink-jetprinter which prints a color image using a plurality of color inks.Reference numeral 3005 denotes a USB connector as a port for connectinga digital camera (DSC) 3012. Reference numeral 3006 denotes a connectorfor connecting the viewer 1011. Reference numeral 3008 denotes a USB hub(USB HUB). When the PD printer apparatus 1000 executes a print processbased on image data from a PC 3010, the USB hub 3008 allows datareceived from the PC 3010 to pass through it, and outputs the data tothe printer engine 3004 via a USB 3021. In this way, the PC 3010connected to the printer apparatus can execute a print process bydirectly exchanging data, signals, and the like with the printer engine3004 (the printer apparatus serves as a normal PC printer). Referencenumeral 3009 denotes a power supply connector, which inputs a DC voltagewhich is converted from commercial AC power by a power supply 3019. ThePC 3010 is a general personal computer. Reference numeral 3011 denotes amemory card (PC card) mentioned above; and 3012, a digital camera (DSC:Digital Still Camera).

Note that signals are exchanged between this controller 3000 and printerengine 3004 via the USB 3021 or an IEEE1284 bus 3022.

FIG. 4 is a block diagram showing the arrangement of the ASIC 3001. InFIG. 4 as well, the same reference numerals denote parts common to thosein the above drawings, and a description thereof will be omitted.

Reference numeral 4001 denotes a PC card interface, which is used toread image data stored in the inserted memory card 3011, and to writedata in the memory card 3011. Reference numeral 4002 denotes an IEEE1284interface, which is used to exchange data with the printer engine 3004.This IEEE1284 interface 4002 is a bus used when image data stored in thedigital camera 3012 or PC card 3011 is to be printed. Reference numeral4003 denotes a USB interface, which exchanges data with the PC 3010.Reference numeral 4004 denotes a USB host interface, which exchangesdata with the digital camera 3012. Reference numeral 4005 denotes acontrol panel interface, which receives various operation signals fromthe control panel 1010, and outputs display data to the display unit1006. Reference numeral 4006 denotes a viewer interface, which controlsdisplay of image data on the viewer 1011. Reference numeral 4007 denotesan interface, which controls interfaces with various switches, LEDs4009, and the like. Reference numeral 4008 denotes a CPU interface,which exchanges data with the DSP 3002. Reference numeral 4010 denotesan internal bus (ASIC bus), which interconnects these interfaces.

FIG. 26 is a block diagram of the DSC 3012 in this embodiment. Thecomponents of the DSC 3012 will be briefly described (firmware iscompatible to NCDP).

Referring to FIG. 26, reference numeral 31 denotes a CPU which controlsthe overall DSC; and 32, a ROM that stores the processing sequence(firmware) of the CPU 31 (note that the ROM comprises a rewritablenonvolatile memory (e.g., a flash memory) since the firmware version isupdated as needed). Reference numeral 33 denotes a RAM which is used asa work area of the CPU 31; and 34, a switch group used to make variousoperations. Reference numeral 35 denotes a liquid crystal display, whichis used to confirm a sensed image, and to display a menu upon makingvarious setups. In this embodiment, these components 34 and 35 serve asa user interface of the whole system when the DSC serves as a member ofthe direct print system. Reference numeral 36 denotes an optical unitwhich mainly comprises a lens and its drive system. Reference numeral 37denotes a CCD element; and 38, a driver which controls the optical unit36 under the control of the CPU 31. Reference numeral 39 denotes aconnector that receives a storage medium 40 (compact flash memory card,smart media card, or the like); and 41, a USB interface (the slave sideof the USB) used to connect the PC or PD printer 1000 of thisembodiment.

The arrangements of the PD printer and DSC of this embodiment have beenexplained. An outline of the operation based on the above arrangementwill be explained below.

<Normal PC Printer Mode>

This mode is a print mode for printing an image on the basis of printdata sent from the PC 3010.

In this mode, when data from the PC 3010 is input via the USB connector1013 (FIG. 3), it is directly sent to the printer engine 3004 via theUSB hub 3008 and USB 3021, and a print process is executed based on thedata from the PC 3010.

<Direct Print Mode from PC Card>

When the PC card 3011 is attached to or detached from the card slot1009, an interrupt is generated, and the DSP 3002 can detect based onthis interrupt whether or not the PC card 3011 is attached or detached(removed). When the PC card 3011 is attached, compressed image data(e.g., compressed by JPEG) stored in that PC card 3011 is read andstored in the memory 3003. After that, the compressed image data isdecompressed, and is stored in the memory 3003 again. When the user hasissued a print instruction of that stored data, the image data isconverted into print data that can be printed by the printer engine 3004by executing conversion from RGB signals into YMCK signals, gammacorrection, error diffusion, and the like, and the print data is outputto the printer engine 3004 via the IEEE1284 interface 4002, thusprinting an image.

<Direct Print Mode from Camera>

FIG. 5 shows the connection state of the PD printer apparatus 1000 anddigital camera 3012 according to this embodiment.

Referring to FIG. 5, a cable 5000 comprises a connector 5001 which isconnected to the connector 1012 of the PD printer apparatus 1000, and aconnector 5002 which is connected to a connector 5003 of the digitalcamera 3012. The digital camera 3012 can output image data saved in itsinternal memory via the connector 5003. Note that the digital camera3012 can adopt various arrangements, e.g., an arrangement that comprisesan internal memory as storage means, an arrangement that comprises aslot for receiving a detachable memory card, and so forth. When the PDprinter apparatus 1000 and digital camera 3012 are connected via thecable 5000 shown in FIG. 5, image data output from the digital camera3012 can be directly printed by the PD printer apparatus 1000.

When the digital camera 3012 is connected to the PD printer apparatus1000, as shown in FIG. 5, and the control enters a direct print mode asa result of negotiation, a camera mark alone is displayed on the displayunit 1006 on the control panel 1010, display and operations on thecontrol panel 1010 are disabled, and display on the viewer 1011 is alsodisabled. Therefore, since only key operations at the digital camera3012 and image display on a display unit (not shown) of the digitalcamera 3012 are enabled, the user can designate print setups using thatdigital camera 3012. Also, any errors which may be caused uponoperations of the digital camera 3012 and the control panel of theprinter at the same time can be prevented.

This embodiment has as its object to provide a PD printer apparatuswhich can connect digital cameras of a plurality of manufacturers andcan print their data, and protocols upon executing a print process whenthe PD printer apparatus 1000 according to this embodiment and a digitalcamera are connected will be described in detail hereinafter.

This embodiment proposes NCDP (New Camera Direct Print) which makescommunication control between the PD printer apparatus and digitalcamera using a versatile file and versatile format, and is independentfrom interfaces.

FIG. 6 shows an example of the configuration of this NCDP.

Referring to FIG. 6, reference numeral 600 denotes a USB interface; and601, a Bluetooth interface. Reference numeral 602 denotes an applicationlayer which is built in upon forming a system based on NCDP. Referencenumeral 603 denotes a layer that implements existing protocols andinterfaces. In FIG. 6, PTP (Picture Transfer Protocol), SCSI, BIP (BasicImage Profile) of Bluetooth, and the like are installed. The NCDPaccording to this embodiment is premised on installation as anapplication on the architecture of the above protocol layer. In thiscase, the PD printer apparatus 1000 is specified as a USB host, thecamera 3012 is specified as a USB device, and they have the same NCDPconfigurations, as shown in FIG. 6.

As will be described in detail later, a merit of use of the NCDP of thisembodiment lies in that when the PD printer apparatus 1000 and DSC 3012exchange information with each other at the time of and after makingtransition to NCDP, a file (text file) which describes a series ofpieces of information and a series of operation procedures as a scriptis generated, that file is sent to a partner device, and the receivingside interprets the received script to execute processes. As a result,when arbitrary information is to be sent to the partner side, if thatinformation consists of a plurality of elements, individual elementsneed not be exchanged by handshake, and the overhead upon informationtransfer can be reduced, thus improving the information transferefficiency. For example, assume that there are a plurality of images tobe printed on the DSC 3012 side. In such case, if the user selectsimages to be printed as much as he or she wants, and sets printconditions for these images, a series of print procedures are describedas a script, and that script can be sent to the PD printer apparatus1000. The PD printer apparatus 1000 side can detect the print conditionsof a plurality of images at once by interpreting the received script,and can execute their print processes according to the script.

FIG. 7 is a view for explaining the flow of communication proceduresbetween the PD printer apparatus 1000 and digital camera (DSC) 3012 onthe basis of the NCDP according to this embodiment.

In this case, when it is detected that the PD printer apparatus 1000 andDSC 3012 are connected via the USB cable 5000, as shown in FIG. 5, acommunication between these devices is allowed. As a result,applications installed in these devices are executed to start transitionto procedures 701 based on the NCDP. Reference numeral 702 denotes aninitial state of the NCDP. In this state, it is determined whether ornot each others models can implement the NCDP. If the NCDP can beimplemented, the devices make transition to the procedures 701. If theDSC 3012 does not install any NCDP, no communication control based onthe NCDP is executed. After transition to the NCDP is made in this way,when the DSC 3012 issues a transfer/print instruction of image databased on “basic procedure”, as indicated by 703, the control shifts to asimple print mode in which an image file is transferred from the DSC3012 to the PD printer apparatus 1000, and is printed. On the otherhand, when the DSC 3012 issues a transfer/print instruction of imagedata based on “recommended procedure”, as indicated by 704, the controlshifts to a print mode corresponding to diversified functions, in whichthe DSC 3012 and PD printer apparatus 1000 make various negotiations todetermine the print condition and the like, an image file is transferredfrom the DSC 3012 to the PD printer apparatus 1000 and printed inaccordance with the print condition. Furthermore, when the DSC 3012issues a transfer/print instruction of image data based on “extendedprocedure”, as indicated by 705, a mode that executes a print processusing an advanced layout function such as DPOF, XHTML-print, SVG, or thelike and specifications unique to each vendor is set. Note that thedetailed specifications based on this “extended procedure” are specifiedin the specifications of each individual DSC manufacturer, and adescription thereof will be omitted. Note that the image print processesbased on these “basic procedure” and “recommended procedure” will bedescribed later with reference to FIGS. 9 to 11.

FIG. 8 is a view for explaining commands specified to print in the NCDPaccording to this embodiment.

Referring to FIG. 8, “corresponding mode” corresponds to the above“basic procedure”, “recommended procedure”, and “extended procedure”designated by the DSC 3012. In “recommended procedure”, all commands canbe used. However, since “basic procedure” is a simple print mode, onlyNCDP start and end commands, a shift command to each of “basicprocedure”, “recommended procedure”, and “extended procedure” modes, anacquisition command of image data from the camera 3012, and a printcommand from the camera 3012 can be used. In “extended procedure”, onlyNCDP start and end commands, and a shift command to each of “basicprocedure”, “recommended procedure”, and “extended procedure” modes areallowed to be used in FIG. 8. However, as described above, othercommands may be used in accordance with the specifications of respectivemanufacturers.

The image print processes based on the above “basic procedure” and“extended procedure” will be explained below.

FIG. 9 is a chart for explaining the NCDP communication procedures whenan image print process is executed based on “basic procedure”. This“basic procedure” is a simple print mode in which one image file istransferred from the DSC to the PD printer apparatus 1000 and isprinted. Compatible image formats include an RGB image of the VGA size(640×480 pixels) and a JPEG image of the VGA size (640×480 pixels). TheDSC 3012 transmits an image file in an image format supported by the PDprinter apparatus 1000. In this case, no error handling is executed. Theprint process of this mode is limited to the layout of one image persheet. This simple mode is plain for the user.

The PD printer apparatus 1000 sends a command (NCDPStart) indicatingtransition to NCDP to the DSC 3012 (900). If the DSC 3012 installs NCDP,it replies “OK” (901). Note that a practical example of this NCDPconfirmation procedure using PTP will be explained in detail later withreference to FIG. 14.

If it is confirmed each other that the NCDP is installed, the PD printerapparatus 1000 transmits a mode shift command (ProcedureStart) to theDSC 3012 (902). In response to this command, when the DSC 3012 transmits“basic procedure” as a simple print mode (903), the control shifts to aprint mode based on “basic procedure”. In this case, when an image to beprinted is selected and its print instruction is issued upon operationon the DSC 3012, a command (JobStart) indicating the start of a printjob is sent from the DSC 3012 to the PD printer apparatus 1000 (904). Inresponse to this command, the PD printer apparatus 1000 is set in thesimple print mode, and sends a command (GetImage) to the DSC 3012 torequest it to send a JPEG image (905). Then, the DSC 3012 sends a JPEGimage to the PD printer apparatus 1000 (906), and a print process in thePD printer apparatus 1000 starts. Upon completion of the print processof the designated image, the PD printer apparatus 1000 sends a command(JobEnd) indicating the end of the print job to the DSC 3012 (907). Whenthe DSC 3012 returns an affirmative response (OK) in response to thiscommand (908), the print process based on this “basic procedure” ends.

Since mode designation from the camera allows the device at which aprint operation is to be made to designate a mode, the user who operatesthe camera can easily designate a mode he or she wants.

FIG. 10 is a chart for explaining the NCDP communication procedures whenan image print process is executed based on “recommended procedure”. Thesame reference numerals in FIG. 10 denote procedures common to those inFIG. 9, and a description thereof will be omitted. In this “recommendedprocedure”, a “more diversified print” mode premised on negotiationbetween the PD printer apparatus 1000 and DSC 3012 can be set, and photoprint and layout print processes of a plurality of images can be made.Also, error handling can be executed.

In FIG. 10, after it is confirmed each other that the NCDP is installedas in FIG. 9, the DSC 3012 designates “recommended procedure” (910) inthis case. After that, procedures based on this “recommended procedure”are executed. The PD printer apparatus 1000 generates its functions andthose including paper setups and the like as Capability information, andinforms the DSC 3012 of all of them (911). This Capability informationis transmitted to the DSC 3012 in a script format (a file that describesa series of procedures and information in a text format).

FIG. 12 shows an example of this Capability information.

As shown in FIG. 12, this Capability information contains information ofthe printable paper types and sizes, print quality, image data format,ON/OFF of date print, ON/OFF of file name print, layout, ON/OFF of imagecorrection, and ON/OFF of functions corresponding to the specificationof each camera manufacturer and the like as options.

Since the Capability information adopts script notation, and thisnotation complies with XML, that information can be easily exported tothe architecture of another communication protocol, and exchange of suchfunction information can be easily standardized. This reason can beeasily understood in comparison to, e.g., a case wherein individualelements are described using dedicated commands. For example, if the DSC3012 is notified of a description “<ImageType= . . . >” used to notifythe image types that the PD printer apparatus 1000 can process in FIG.12, a dedicated command is required. It is impossible from the start toprepare commands in consideration of new functions which may be added inthe future. Since functions are described using a script, a series ofpieces of information can be described as text of a plurality of lines.If the script contains an element that cannot be interpreted, suchelement can be ignored. Hence, expansibility will never be disaffirmed.The same applies to other scripts.

Upon reception of such Capability information, the DSC 3012 candetermine the functions of the PD printer apparatus 1000 to be used in aprint process. The DSC 3012 presents a menu according to thisdetermination result to the user to prompt him or her to select an imageto be printed. In addition, the DSC 3012 selects and determines a printcondition of that image from functions (print conditions) of the PDprinter apparatus 1000. After the image to be printed and its printcondition are determined, when a print start instruction is issued, aprint command (JobStart) is sent to the PD printer apparatus 1000. Inresponse to this command, the PD printer apparatus 1000 issues a command(GetImage xn) which requests that image data (912). In response to thiscommand, the DSC 3012 transmits corresponding image data in an imageformat (Tiff, JPEG, RGB, or the like) that the PD printer apparatus 1000can receive (913). The reason why a plurality of image data can betransmitted per image to be printed is that when, for example, 2×2layout print or the like is designated, four image data must betransmitted per paper sheet. Upon completion of the print process of thedesignated image, the PD printer apparatus 1000 transmits a command(JobEnd) indicating the end of the print job to the DSC 3012 (907). Whenthe DSC 3012 returns an affirmative response (OK) in response to thiscommand (908), the control starts the select and print processes of thenext image based on this “recommended procedure” again.

FIG. 11 is a chart for explaining the communication procedures when anerror has occurred in the PD printer apparatus 1000 in the NCDPcommunication procedures upon executing an image print process based onthe above “recommended procedure”. The same reference numerals in FIG.11 denote procedures common to those in FIG. 10, and a descriptionthereof will be omitted.

FIG. 11 exemplifies a case wherein a paper feed error has occurred inthe PD printer apparatus 1000 during the print process based on“recommended procedure”. In this case, the PD printer apparatus 1000sends status information (Status) indicating the paper feed error to theDSC 3012 (914). In response to this information, a command indicating ifthat print process is to be continued (JobContinue) or aborted(JobAbort) is transmitted to the PD printer apparatus 1000 on the basisof designation contents determined by the user of the DSC 3012 (915).When the print process is to be aborted, the PD printer apparatus 1000aborts that print process, and transmits a print job end message(JobEnd). On the other hand, when continuation of the print process isdesignated, the apparatus continues the print process after that paperfeed error is recovered.

The aforementioned processing sequence will be explained below withreference to the flow chart of FIG. 13.

FIG. 13 is a flow chart for explaining the processing sequence shown inFIG. 7.

In step S1, a communication is established between the digital camera(DSC) 3012 and PD printer apparatus 1000 (700). It is checked in step S2if these devices have already installed NCDP. If these devices havealready installed NCDP, the NCDP mode starts. The flow then advances tostep S3 to receive a procedure instruction from the DSC 3012, and tostart the designated procedure. If “basic procedure” is designated, theflow advances from step S4 to step S5 to execute a print process basedon “basic procedure”. On the other hand, if “recommended procedure” isdesignated, the flow advances from step S6 to step S7 to execute a printprocess based on “recommended procedure”. Furthermore, if “extendedprocedure” is designated, the flow advances from step S8 to step S9 toexecute a print process based on “extended procedure”. If anotherprocedure is designated, the flow advances to step S10 to execute aprint process in a mode unique to the PD printer apparatus 1000 and DSC3012.

An example wherein various commands (FIG. 8) in the NCDP mode mentionedabove are implemented using the standard protocol PTP specified by PIMA(Photographic and Imaging Manufacturers Association) for image transfer(wrapper using PTP) will be described. In this embodiment, NCDP usingPTP will be exemplified. However, the present invention is not limitedto such specific example. For example, a direct print service API may beimplemented on another interface or another class (Class).

[NCDPStart]

FIG. 14 is a view for explaining an implementation example of a command(NCDPStart) that instructs to start the NCDP procedure using thestandard image transfer protocol PTP. More specifically, FIG. 14 showsnegotiation procedures of determining whether or not the DSC 3012 and PDprinter apparatus can serve as the photo direct print system describedin this embodiment, so as to dominate “shift to NCDP” in FIG. 7.

In procedure 1400, the PD printer apparatus 1000 transmits PTP commandGetDeviceInfo to the DSC 3012 to request it to send informationassociated with objects held by the DSC. Simply stated, this command isan inquiry about what device is connected to the PD printer. In responseto this command, the DSC 3012 transmits (informs) information aboutitself to the PD printer apparatus 1000 using DeviceInfo Dataset.However, this information is attribute information associated with acamera, which is specified by the PTP standard, but does not contain anyinformation associated with direct print. In procedure 1402, PTP commandOpenSession starts a session for assigning the DSC 3012 as a resource,assigning handles to data objects as needed, and making a specialinitialization process.

In procedure 1403, a handle request is sent to the DSC 3012. With thisrequest, the PD printer apparatus 1000 requests numbers uniquelyassigned to unknown objects (sensed images, scripts, and the like) heldby the DSC so as to specify these objects. In response to this request,a handle list held by the DSC 3012 is sent back in procedure 1404 (thislist is equivalent to a message indicating the number of objects).

As a result of the above procedures, the PD printer apparatus 1000 candetermine the number of objects held by the DSC. It is important innegotiation to determine whether or not both devices have functionscapable of starting NCDP. In this determination, when scripts whichrespectively describe passwords “NCDP_CAMERA” and “NCDP_PRINTER” arecast, and both devices can receive intended results from each other, thecontrol starts the NCDP direct print mode.

Therefore, as described above, the PD printer 1000 side must searchobjects held by the DSC 3012 for an object whose attribute is a script.

For this purpose, the PD printer apparatus 1000 outputs PTP commandGetObjectInfo(Handle i) (in this case, i=1) that inquires the attributeof an object with first handle “1” to the DSC 3012, and receives thereturned i-th attribute (ObjectInfo i Dataset). The printer apparatusrepeats this process from 1 to the maximum number of objects. Morespecifically, the printer apparatus searches for an object whoseattribute is not an image but a script that describes a password (word).PTP command GetObjectInfo can designate an object type as an option.However, since some digital cameras may not support this option, suchscript object search process is required.

When the PD printer apparatus 1000 side detects a handle (let handle“j”) of the script object, it outputs PTP command “GetObject(Handle j)”which requests data indicated by that handle “j” to the DSC 3012. As aresult, the DSC 3012 outputs a script which describes password“NCDP_CAMERA” to the PD printer apparatus 1000 as “Object j Data”.

As a result, the PD printer apparatus 1000 can recognize that theconnected DSC 3012 is an NCDP compatible digital camera. Next, the PDprinter apparatus 1000 sends password “NCDP_PRINTER” indicating an NCDPcompatible printer. Prior to this password, the printer apparatustransmits attribute information of an object to be transmitted usingSendObjectInfo (S1407). Then, the printer apparatus notifies the DSC3012 of password “NCDP_PRINTER” using SendObject. Note that thesepasswords are merely examples, and the present invention is not limitedto these specific ones.

As a result of the above procedures, both devices recognize that theyare NCDP compatible devices. After that, the control enters the NCDPphoto direct print mode according to this embodiment.

FIG. 25 is a flow chart showing the aforementioned procedures.

The PD printer apparatus (to be simply referred to as PD hereinafter)1000 outputs a device information request (GetDeviceInfo) to the DSC3012 in step S21 (the DSC notifies the PD 1000 of information indicatingthe self device attribute in step S41 in response to this request(DeviceInfoDataset)).

The PD 1000 declares the start of a session (OpenSession) in step S22.The DSC 3012 receives this declaration, and notifies the PD 1000 of OKin step S42.

The PD 1000 requests handles of objects held by the DSC 3012(GetObjectHandles) in step S23. In response to this request, the DSC3012 notifies the PD 1000 of objects (images and scripts) held by itself(ObjectHandleArray) in step S43, and the PD 1000 receives thatinformation (step S24).

Since the PD 1000 can detect the number of handles from the receivedinformation, it substitutes “1” in variable i indicating a handle as aninitial value in step S25 first, and requests an attribute of the i-thobject (GetObject(Handle i)) in step S26. As a result, since the DSC3012 transmits the attribute of the corresponding object (ObjectInfoDataset), the PD 1000 receives it, and checks if that object is a script(step S27). If it is determined that the corresponding object is otherthan a script (sensed image), the PD 1000 increments variable i by 1 instep S28, and repeats the process in step S26.

If it is determined that the i-th object is a script, the flow advancesto step S27 to request the DSC to transfer the contents of the i-thobject (GetObject(Handle i)). That is, this request is sent inanticipation of a password (word). As a result, since the DSC 3012notifies the PD 1000 of the contents of the designated object (Object iData) in step S45, the PD 1000 checks if the contents are password“NCDP_CAMERA” (step S29). If it is determined that the contents are notpassword “NCDP_CAMERA”, but another script is sent back inadvertently,the PD 1000 checks in step S31 if variable i indicates the last handler.If NO in step S31, the flow returns to step S28 to repeat the aboveprocesses. If the PD 1000 determines that the DSC does not notifypassword “NCDP_CAMERA” after the last hander has been reached, itdetermines that the connected DSC 3012 is an NCDP incompatible digitalcamera. In order to abort subsequent processes, the PD 1000 turns on anLED equipped on its control to notify an error, or displays a messageindicating a negotiation failure, thus ending this process.

On the other hand, if the PD 1000 receives password “NCDP_CAMERA” fromthe DSC, the flow advances to step S33. In step S33, the PD 1000 sends ascript that describes password “NCDP_PRINTER” to the DSC 3012(SendObject) via a procedure (transmission of SendObjectInfo andreception of OK) indicating that the PD 1000 is compatible to NCDP(S33). Since the script received from the DSC 3012 is no longerrequired, the PD 1000 deletes that script, and starts the NCDP mode.

If it is determined that password “NCDP_PRINTER” is received (step S46),the flow advances to step S47, and the DSC 3012 deletes the scriptreceived from the PD 1000 and starts the NCDP mode.

The processing sequence of negotiation has been described. Note that theabove example corresponds to the case wherein both the PD printerapparatus 1000 and DSC 3012 support NCDP.

Since negotiation in this embodiment uses PTP, even a digital camerahaving an NCDP incompatible USB connection function executes theprocesses from step S41 to steps S44, S45, and S46. However, since theprocess in step S45 is not present, it is determined that received datais insignificant data (script), and that data is simply received andsaved to repeat steps S44 and S45.

It is particularly noted that the transmission source of the password onthe basis of the script request of the PD printer 1000 is always the DSC3012 side (even when the DSC 3012 is incompatible to NCDP, it transmitsthe first script). That is, the PD printer apparatus 1000 side issuespassword “NCDP_PRINTER” in response to password “NCDP_CAMERA”, and onlywhen the PD printer apparatus 1000 receives first password“NCDP_CAMERA”, it issues password “NCDP_PRINTER” in response to thatpassword.

Upon adopting such procedures, if the PD printer apparatus 1000 issuesthe password first, no problem is posed when the DSC 3012 is compatibleto NCDP. However, if the DSC 3012 is incompatible to NCDP, since theflow cannot advance to the process in step S47, it endlessly receivesand stores insignificant script files (junk files).

As described above, since the PD printer 1000 sends a request to theDSC, the DSC side outputs first authentication information (the abovepassword or word) upon mutual authentication, and the PD printerapparatus 1000 outputs authentication information in response to thatinformation, a device connected to the PD printer apparatus 1000 can beprevented from accumulating junk files irrespective of its type. This isbecause the PD printer apparatus 1000 does not output authenticationinformation if a script received from the DSC does not contain anyexpected authentication information. Especially, since a request fromthe device (the PD printer 1000 in this case) that transmitsauthentication information next is sent to the DSC as the device thattransmits authentication information first, the PD printer 1000 need notrecognize the script obtained as a response to that request to be a junkfile.

With the above process, since an NCDP compatible digital camera holds ascript that describes a password, transition to the NCDP print system isguaranteed. However, as can be easily seen from the above description,in order to shorten the negotiation time, a script that containsauthentication information (word) is preferably assigned to an objectwith a handle number, which is requested earlier, of those of the DSC3012 side. In this embodiment, if the DSC 3012 is compatible to NCDP,and receives a handle request (GetObjectHandles), it assigns handlenumber “1” to a script (authentication information) including the word,assigns subsequent handle numbers to images which have been sensed,stored, and held, and notifies the PD printer apparatus 1000 of thatassignment result. In this way, the earliest shift to NCDP is expected.

As a result, the loop processes of steps S26 to S28 or those of stepsS26 to S31 and S28 can be substantially omitted, and the flow canadvance to steps S33 and S34 at once, thus achieving high-speednegotiation.

As the process on the DSC 3012 side, for example, a sequence shown inFIG. 27 can be adopted (a program of this sequence is stored in the ROM32 in the DSC 3012). Note that the process in FIG. 27 is executed when ahandle request command (GetObjectHandles) is received from the PDprinter apparatus 1000, and is called from a host process upon receptionof that command. Hence, note that whether or not GetObjectHandles isreceived has already been determined by the host process.

In step S51, a table (or a variable area) used to store objects andhandles in correspondence with each other is allocated in the RAM 33.The flow advances to step S52, and an object that describes a scriptindicating NCDP compatibility is set in the table to assign it to thefirst handle. After that, handlers are assigned to remaining objects(normally, sensed image data that have been stored and held) and are setin the table. The result is then sent to the PD printer apparatus 1000as ObjectHandleArray.

As a result, the DSC 3012 and PD printer apparatus 1000 can share(commonize) information upon designating objects. In the subsequentprocesses, objects in the DSC 3012 are exchanged using handles.

When the PD printer apparatus 1000 determines whether or not an objectof the DSC 3012 is a script in an order tracing back from the lasthandle, the DSC 3012 can assign a script including a password to thelast handle upon notifying the PD printer apparatus 1000 of handles.

Note that it is most effective to assign the first handle number to anobject that describes a script indicating NCDP compatibility. However,the first handle number need not always be assigned, and it issufficiently effective if a number near the first number is assigned.That is, as long as the last number is not assigned to an object thatdescribes a script indicating NCDP compatibility, higher-speednegotiation can be attained compared to the case wherein the last numberis assigned.

[ProcedureStart]

FIG. 15 is a view for explaining an example wherein a command(ProcedureStart) used to start a given mode upon reception of a commandthat designates a start procedure to that mode from the DSC 3012 isimplemented using the PTP architecture.

In order to notify the DSC 3012 of procedures “basic procedure”,“recommended procedure”, and “extended procedure” supported by the PDprinter apparatus 1000, the printer apparatus notifies the DSC 3012 ofthe presence of object information to be sent to it using PTP commandSendObjectInfo (1501). Upon reception of an affirmative response (OK)from the DSC 3012 in response to this command, the printer apparatussends a message indicating that it is ready to transmit an object to theDSC 3012 using PTP command SendObject (1502), and then transmitsinformation associated with the procedures supported by the PD printerapparatus 100 using ObjectData (1503). The DSC 3012 issues event messageRequestDataTransfer defined by PTP to the PD printer apparatus 1000(1504) to notify the printer apparatus that a PTP command GetObjectOperation is to be launched. In response to this message, when the PDprinter apparatus 1000 sends a message indicating that it is ready toreceive information associated with object information (GetObjectInfo)(1505), that information is returned using ObjectInfo Dataset (1506).When object information itself is requested by designating the objectinformation (1507), the DSC 3012 informs the PD printer apparatus 1000of procedures (“basic”, “recommended”, “extended”, and the like) thatthe DSC 3012 uses by Object Dataset (1508).

In this manner, the DSC 3012 can designate an image print mode of the PDprinter apparatus 1000.

[NCDPEnd]

FIG. 16 is a view for explaining an example wherein a command (NCDPEnd)used to end the NCDP communication control procedures in this embodimentis implemented using the PTP architecture.

In this procedure, the PD printer apparatus 1000 informs the DSC 3012 ofthe presence of object information to be sent to it (1600), and notifiesthe DSC 3012 that it leaves the NCDP mode using ObjectData. Uponreception of an affirmative response (OK) in response to this command,PTP command CloseSession is transmitted (1601) to end thiscommunication. In this way, the NCDP communication procedures end.

[Capability]

FIG. 17 is a view for explaining an example wherein communicationprocedures in a Capability command used to notify the DSC 3012 of thefunctions of the PD printer apparatus 1000 in NCDP of this embodimentare implemented using the PTP protocol.

In this procedure, the PD printer apparatus 1000 informs the DSC 3012 ofthe presence of object information to be sent to it using PTP commandSendObjectInfo (1700). Then, the printer apparatus notifies the DSC 3012that it is ready to transmit object information using PTP commandSendObject, and then transmits the functions of the PD printer apparatus1000 to the DSC 3012 in a script format (FIG. 12) using Object Data(1701).

[GetImage]

FIG. 18 is a view for explaining an example wherein communicationprocedures when the PD printer apparatus 1000 acquires image data (JPEGimage) held by the DSC 3012 (GetImage) are implemented using the PTPprotocol.

Upon sending a request of information associated with an object held bythe DSC 3012 (1800), the DSC 3012 sends information (Object Dataset)associated with that object to the PD printer apparatus 1000 (1801).When an acquisition request (GetObject) is issued by designating thatobject (1802), the DSC 3012 transmits the requested image file (ObjectDataset) to the PD printer apparatus 1000 (1803). In this way, the PDprinter apparatus 1000 can acquire a desired image file from the DSC3012.

[StatusSend]

FIG. 19 is a view for explaining an example wherein communicationprocedures when the PD printer apparatus 1000 notifies the DSC 3012 oferror status or the like (StatusSend) in NCDP of this embodiment areimplemented using the PTP protocol.

The PD printer apparatus 1000 notifies the DSC 3012 of the presence ofobject information to be sent to it using PTP command SendObjectInfo(1900). Then, the printer apparatus transmits an information set (ObjectDataset) associated with that object information to the DSC 3012 (1901).In response to an affirmative response (OK) from the DSC 3012, statusinformation of errors or the like in the PD printer apparatus 1000 istransmitted using PTP commands SendObject and Object Dataset.

[PageEnd]

FIG. 20 is a view for explaining an example wherein communicationprocedures when the PD printer apparatus 1000 notifies the DSC 3012 ofthe end of a print process for one page (PageEnd) in NCDP of thisembodiment are implemented using the PTP protocol.

[JobEnd]

FIG. 20 is a view for explaining an example wherein communicationprocedures when the PD printer apparatus 1000 notifies the DSC 3012 ofthe end of a print job (JobEnd) in NCDP of this embodiment areimplemented using the PTP protocol. In FIGS. 20 and 21, after executionof procedures 1900 and 1901 in FIG. 19, the PD printer apparatus 1000notifies the DSC 3012 of the end of the print process for one page (1910in FIG. 20), and the PD printer apparatus 1000 notifies the DSC 3012 ofthe end of the print job (1911 in FIG. 21).

[JobStart]

FIG. 22 is a view for explaining an example wherein communicationprocedures when the DSC 3012 notifies the PD printer apparatus 1000 ofthe start of a print job (JobStart) in NCDP of this embodiment areimplemented using the PTP protocol.

The DSC 3012 sends event message RequestObjectTransfer defined by PTP tothe PD printer apparatus 1000 (2200) so as to urge the PD printerapparatus 1000 to issue PTP command GetObject. As a result, when the PDprinter apparatus 1000 issues PTP command GetObjectInfo (2201), the DSC3012 transmits information associated with object information to betransmitted. In response to this information, when the PD printerapparatus 1000 requests object information (GetObject: 2203), ObjectDataset is transmitted to issue a print command from the DSC 3012 to thePD printer apparatus 1000 (2204).

[JobAbort]

FIG. 23 is a view for explaining an example wherein communicationprocedures when the DSC 3012 issues a print abort command to the PDprinter apparatus 1000 (JobAbort) in NCDP of this embodiment areimplemented using the PTP protocol.

[JobContinue]

FIG. 24 is a view for explaining an example wherein communicationprocedures when the DSC 3012 issues a print restart command to the PDprinter apparatus 1000 (JobContinue) in NCDP of this embodiment areimplemented using the PTP protocol.

In FIGS. 23 and 24, after procedures 2200 to 2203 in FIG. 22 areexecuted, the DSC 3012 issues a print abort command to the PD printerapparatus 1000 (2301 in FIG. 23), and sends a print restart command tothe PD printer apparatus 1000 (2401 in FIG. 24).

Note that the present invention may be applied to either a systemconstituted by a plurality of devices (e.g., a host computer, interfacedevice, reader, printer, and the like), or an apparatus consisting of asingle equipment (e.g., a copying machine, facsimile apparatus, or thelike).

The objects of the present invention are also achieved by supplying astorage medium (or recording medium), which records a program code ofsoftware that can implement the functions (processes to be executed onthe camera side, various print processes executed on the printer side)of the above-mentioned embodiments to the system or apparatus, andreading out and executing the program code stored in the storage mediumby a computer (or a CPU or MPU) of the system or apparatus.

In this case, the program code itself read out from the storage mediumimplements the functions of the above-mentioned embodiments, and thestorage medium which stores the program code constitutes the presentinvention. The functions of the above-mentioned embodiments may beimplemented not only by executing the readout program code by thecomputer but also by some or all of actual processing operationsexecuted by an operating system (OS) running on the computer on thebasis of an instruction of the program code.

Furthermore, the functions of the above-mentioned embodiments may beimplemented by some or all of actual processing operations executed by aCPU or the like arranged in a function extension card or a functionextension unit, which is inserted in or connected to the computer, afterthe program code read out from the storage medium is written in a memoryof the extension card or unit.

In the above description, since a handle number that is to be exchangedat an earliest possible timing is assigned to authenticationinformation, the shift time to the camera direct process is shortened.

However, upon making an authentication process with a device which hasno camera direct function, all pieces of handle number information mustbe exchanged, and it takes a long time to determine an authenticationfailure.

To solve this problem, a device having a camera direct functionpreferably assigns a handle number within the range of a predeterminednumber from a number to be information-exchanged early to authenticationinformation. (For example, it is specified to assign one of handlenumbers “1” to “10” to authentication information in the aboveembodiment. When information is exchanged in descending order of number,a number within 10 numbers from the maximum number is assigned.) In thisway, an authentication failure can be determined quickly.

The predetermined number of handle numbers is not limited to 10.However, the device which transmits authentication information first andthat which transmits authentication information second preferably usecommon numbers.

With this arrangement, even when the first handle number of the DSCcannot be assigned to authentication information, since a smallestpossible handle number can be assigned to authentication information,the freedom in design is not so restrained. When authenticationinformation cannot be exchanged, that fact can be recognized quickly.

As described above, according to this embodiment, the PD printerapparatus is set as a USB host, the DSC is set as a USB device, the PDprinter apparatus transmits information associated with its Capabilityto the DSC prior to a print operation, and the DSC can determine anoptimal print mode based on that Capability information upon issuing aprint command.

Since the Capability information is transmitted using a script, thatinformation can be easily exported to other communication protocols,thus allowing easy standardization.

Since communication procedures between devices are made using aversatile files and versatile format, and a communication protocol layerof an application according to this embodiment is specified as an upperlayer, communication procedures independent of various interfacespecifications can be specified.

In the above embodiment, upon forming the photo direct print system, theprinter apparatus serves as a USB host and the DSC serves as a USBdevice. As described above, as a result of examination of thecircumstances that most of recent digital cameras have a USB devicefunction to communicate with a PC, if the number of digital cameramanufacturers is larger than that of printer manufacturers, and a hostdevice need not trouble about a power supply, when the printer sideserves as a host, the load on the manufacturers can be reduced, themanufacturers can sufficiently enjoy merits upon building a system asthe object of the present invention, and such system is preferable forend users.

In the above embodiment, as direct communication means between thedigital camera and printer, direct connection using the USB cable hasbeen exemplified. For example, since a direct communication can also bemade by a wireless communication such as Bluetooth or the like, thepresent invention is not limited to the above example.

As described above, according to the present invention, anauthentication procedure that can avoid unnecessary information frombeing stored in a digital camera can be made irrespective of whether ornot a digital camera connected to a printer has the direct printfunction.

Upon building the photo direct print system, information transferefficiency of the system can be improved, and an image that the userwants to print can be printed in a short response time.

Since information exchange is described in a script, functionaldifferences among manufacturers can be absorbed. Even when new functionsare added to one or both of the printer and digital camera, since acommunication itself can be diverted, a flexible communication can bemade.

As many apparently widely different embodiments of the present inventioncan be made without departing from the spirit and scope thereof, it isto be understood that the invention is not limited to the specificembodiments thereof except as defined in the claims.

The invention claimed is:
 1. A digital camera which stores an imagesensed by an image sensing unit into a storage medium and has a userinterface including a button for instructing printing of the image,comprising: a communication unit constructed to communicate with a printapparatus using a Picture Transfer Protocol (PTP); a first receptionunit constructed to receive, from the print apparatus, a transferrequest command having a format including a number specifying uniquelyone of a plurality of information being managed by the digital camera,in response to the start of communication with the print apparatus bysaid communication unit, where the digital camera assigns a uniquenumber to each of the plurality of information; a sending unitconstructed to select one of the plurality of information being managedby the digital camera according to the number included in the transferrequest command received by said first reception unit, and send, to theprint apparatus, the selected information; a second reception unitconstructed to receive information from the print apparatus after saidsending unit sends the information including a password indicating thatthe digital camera has a direct print function; a recognition unitconstructed to recognize that the print apparatus is a print apparatushaving the direct print function if the information received by saidsecond reception unit includes a password indicating that the printapparatus has a direct printing function and to delete the informationreceived by said second reception unit; and a third reception unitconstructed to receive, from the print apparatus, capability informationas a script in which a list of functions of the print apparatus aredescribed after said second reception unit receives informationincluding the password indicating that the print apparatus has a directprinting function, wherein the user interface can select one offunctions described in the capability information received by said thirdreception unit.
 2. A method of controlling a digital camera which storesan image sensed by an image sensing unit into a storage medium and has auser interface including a button for instructing printing of the imageand a communication unit constructed to communicate with a printapparatus using a Picture Transfer Protocol (PTP), said methodcomprising: a first reception step of receiving, from the printapparatus, a transfer request command having a format including a numberspecifying uniquely one of a plurality of information being managed bythe digital camera, in response to the start of communication with theprint apparatus by said communication unit, where the digital cameraassigns a unique number to each of the plurality of information; asending step of selecting one of the plurality of information beingmanaged by the digital camera according to the number included in thetransfer request command received in said first reception step, andsending to the print apparatus the selected information including akeyword indicating that the digital camera has a direct print function;a second reception step of receiving information from the printapparatus after the information including a password indicating that thedigital camera has a direct print function is sent in said sending step;a recognition step of recognizing that the print apparatus is a printapparatus having the direct print function if the information receivedin said second reception step includes a password indicating that theprint apparatus has a direct printing function and to delete theinformation received by said second reception step; and a thirdreception step of receiving, from the print apparatus, capabilityinformation as a script file in which a list of functions of the printapparatus are described after information including the passwordindicating that the print apparatus has a direct printing function isreceived in said second reception step, wherein the user interface canselect one of functions described in the capability information receivedin said third reception step.
 3. A print apparatus communicatingdirectly with a digital camera which is used as a user interface deviceincluding a button for instructing printing, to receive and print animage managed by the digital camera, comprising: a communication unitconstructed to communicate with a digital camera using an informationtransfer command including a number specifying uniquely informationamong a plurality of information managed by the digital camera in orderto acquire the information from the digital camera, where the digitalcamera assigns a unique number to each of the plurality of information;a request unit constructed to send, to the digital camera via saidcommunication unit, an information transfer request of informationmanaged by the digital camera in order to determine whether or not thedigital camera is a device having a direct print function, in responseto start of communication with the digital camera by said communicationunit; a reception unit constructed to receive, from the digital camera,the information requested by said request unit; and a notification unitconstructed to, if the information received by said reception unitincludes a password indicating that the digital camera is the devicehaving the direct print function, notify the digital camera ofinformation including a password indicating that the print apparatus hasthe direct print function and to delete the information received by saidreception unit, wherein, if the information received by said receptionunit does not include the password indicating that the digital camerahas a direct print function, the print apparatus terminates thenegotiation with the digital camera without sending the informationincluding the password indicating that the print apparatus has a directprinting function.
 4. The apparatus according to claim 3, wherein saidrequest unit requests information having a script attribute conformingwith a XML format among the plurality of information managed by thedigital camera.
 5. The apparatus according to claim 3, furthercomprising a sending unit constructed to send, to the digital camera,capability information as a script file in which a list of functions ofthe print apparatus are described after said notification unit notifiesthe digital camera of the information including the password.
 6. Amethod of controlling a print apparatus which has a communication unitconstructed to communicate with a digital camera which is used as a userinterface device including a button for instructing printing, receivesand prints an image managed by the digital camera via said communicationunit, where said communication unit is constructed to communicate withthe digital camera using an information transfer command including anumber specifying uniquely information among a plurality of informationmanaged by the digital camera in order to acquire the information fromthe digital camera, where the digital camera assigns a unique number toeach of the plurality of information, said method comprising: a requeststep of sending, to the digital camera via said communication unit, aninformation transfer request of information managed by the digitalcamera in order to determine whether or not the digital camera is adevice having a direct print function, in response to start ofcommunication with the digital camera by said communication unit; and areception step of receiving, from the digital camera, informationrequested in said request step; and a notification step of, if theinformation received in said reception step includes a passwordindicating that the digital camera is the device having the direct printfunction, notifying the digital camera of information including apassword indicating that the print apparatus has the direct printfunction and of deleting the information received by said receptionstep, wherein, if the information received by said reception step doesnot include the password indicating that the digital camera has a directprint function, the print apparatus terminates the negotiation with thedigital camera without sending the information including the passwordindicating that the print apparatus has a direct printing function. 7.The method according to claim 6, wherein in said request step,information having a script attribute conforming with a XML format amongthe plurality of information managed by the digital camera is requested.8. The method according to claim 6, further comprising a sending step ofsending, to the digital camera, capability information as a script filein which a list of functions of the print apparatus are described aftersaid notification step notifies the digital camera of the informationincluding the password.